#ifndef FILEREADER_H_
#define FILEREADER_H_

#include <stdio.h>
#include <stdlib.h>
#include "Vector2D.h"
#include "BooleanStatement.h"
#include "ConditionalStatement.h"
#include "TypedValue.h"
#include "NavigationEdge.h"

class FileReader
{
	public:
	static char * GetNextTag(FILE * fptr);
	static char * GetNextElement(char * tag, int * pos);
	
	static ConditionalStatement * ReadConditionalStatement(char * element);
	static BooleanStatement * ReadBooleanStatement(char * element);
	static Vector2D ReadCoordinate(char * element);
	static int ReadInt(char * element);
	static float ReadFloat(char * element);
	static ConditionalStatement * ReadNextConditionalStatement(char * tag, int * pos);
	static BooleanStatement * ReadNextBooleanStatement(char * tag, int * pos);
	static Vector2D ReadNextCoordinate(char * tag, int * pos);
	static int ReadNextInt(char * tag, int * pos);
	static float ReadNextFloat(char * tag, int * pos);
	static char * ReadNextString( char * tag, int * pos);
	static TypedValue * ReadTypedValue(char * element);
	static char * ReadDictionaryEntry(char * element);
	static Vector2D * ReadNextVectorArray(int numVertices, char * tag, int * pos);
	static NavigationEdge * ReadNextNavigationEdge(char * tag, int * pos);
};
#endif /*FILEREADER_H_*/
